/*//js的对象是一种无序的集合数据类型 ，由若干建值组成
var xiaoming={
    name:'小马哥',
    age:32,
    height:1.70,
    window:35,
    score:null
}
///上面申明了一个xiaoming的对象，我们可以调用
console.log(xiaoming.name);
console.log(xiaoming.height);
// /访问属性 如果属性包含特殊字符要用“"或者‘’括起来
var xiaohong={
    name:'小红',
    'middle-school':'no.1 middle school'
};
console.log(xiaohong);
console.log(xiaohong["middle-school"]);//no.1 middle school
console.log(xiaohong.name);//小红
console.log(xiaohong['name']);//小红
console.log(xiaohong[name]);//undefined

//实际上对象js对象的所有属性都是字符串，不过属性对应的值可以是任意的数据类型
'use strict';
// 如果属性不存在不会报错，会返回undefined
var xiaoming = {
    name: '小明'
};
console.log(xiaoming.name);
console.log(xiaoming.age); // undefined  
// js的对象是动态的，可以添加或者删除
var xiaoming = {
    name: '小明'
};
console.log(xiaoming.age);
console.log(xiaoming.age=20);
console.log(xiaoming);
delete xiaoming.age///删除元素 删除一个不存在的元素也不会报错，返回undefined
console.log(xiaoming);

// 我们可以检测对象是否拥有我们要的属性
var xiaoming = {
    name: '小明'
};
console.log('name' in xiaoming);
console.log( 'age' in xiaoming);
// 不过我们得到的true有可能是对象继承的，不一定是xiaoming的
console.log('toString' in xiaoming);//true
// 要判断一个属性是否是xiaoming自身拥有的，而不是继承得到的，可以用hasOwnProperty()方法：
var xiaomings = {
    name: '小明'
};
// console.log(xiaomings.hasownproperty('name'));
*/
// js条件判断
// var age=10;
// if (age>=18) {
//     alert('成年了')
// }else{
//     alert('未成年')
//     console.log('age<18');
// }
// // 多条件判断
// var age=33;
// if (age>=30) {
//     alert('大于30')
// }else if(age>=20){
//     alert('大于20')
// }else{
//     alert('20都没过真垃圾')
// }//要注意顺序
// var s='123'
// if (s.length) {
    
// }
// JavaScript把null、undefined、0、NaN和空字符串''视为false，其他值一概视为true，因此上述代码条件判断的结果是true。

// 练习 小明身高1.75，体重80.5kg。请根据BMI公式（体重除以身高的平方）帮小明计算他的BMI指数，并根据BMI指数：

// 低于18.5：过轻 18.5-25：正常 25-28：过重 28-32：肥胖 高于32：严重肥胖 用if...else...判断并显示结果：

// 'use strict';

// var height = parseFloat(prompt('请输入身高(m):'));
// var weight = parseFloat(prompt('请输入体重(kg):'));
// var bmi = weight/(height*height);
// console.log(bmi);
// if (bmi<18.5) {
//     alert('过轻')
// }else if(bmi>=18.5 && bmi<25){
//     alert('正常')
// }else if(bmi>=25 && bmi<28){
//     alert('过重')
// }else if(bmi>=28 && bmi<32){
//     alert('肥胖')
// }else{
//     alert('严重肥胖')
// }

// //循环、
// console.log(1+2+3);  ///6
// var x=0
// for (let i = 1; i <=10000; i++) {
//     x+=i
// }
// console.log(x);//50005000
// 'use strict';
// var x = 1;
// for (let i = 1; i <11; i++) {
//     x*=i
// }
// console.log(x);
// if (x === 3628800) {
//     console.log('1 x 2 x 3 x ... x 10 = ' + x);
// }
// else {
//     console.log('计算错误');
// }

// var arr = ['Apple', 'Google', 'Microsoft'];
// for (let i = 0; i < arr.length; i++) {
//     let x=arr[i]
//     console.log(x);
// }
// // for循环的3个条件都是可以省略的，如果没有退出循环的判断条件，就必须使用break语句退出循环，否则就是死循环：
// var x=0;
// for(;;){
//     if(x>10){
//         break;
//     }
//     x++;
// }
// console.log(x);
// //for ...in
// var o={
//     name:"jake",
//     age:20,
//     city:'beijing'
// };
// for(var key in o){//如果要过滤掉对象继承属性，可以用hasonproperty
//     // if (o.hasownproperty(key)) {
//     //     console.log(key);
//     // }
// }

// var aa=['z','x','y']
// for(var s in aa){
//     console.log(s);
//     console.log(aa[s]);
// }
// // while
// // 计算100以内的奇数之和
// var bs=0;
// var sb=99;
// while (sb>0) {
//     bs+=sb;
//     sb=sb-2;
// }
// console.log(bs);
// // do ...while
// var n=0;
// do{
//     n=n+2;
// }while(n<100);
// console.log(n);
// 用do { ... } while()循环要小心，循环体会至少执行1次，而for和while循环则可能一次都不执行。
'use strict';
var arr = ['Bart', 'Lisa', 'Adam'];

for (let i = 0; i < arr.length; i++) {
    var x=arr[i];
    console.log('Hello,'+x+'!');
}
